﻿using UnityEngine;
using System.Collections;

public class HealthBar : MonoBehaviour {
	LineRenderer bar;
	GUIStyle StyleHPBar = new GUIStyle();
	public Texture2D HPBarTexture;
	// Use this for initialization
	void Start () {
		bar = gameObject.GetComponent<LineRenderer> ();
		//inicializa los valores del texto de la barra de vida.
		if (gameObject.tag.Equals ("Player")) {
			StyleHPBar.alignment = TextAnchor.MiddleCenter; //Setea el texto al centro del box.
			StyleHPBar.fontStyle = FontStyle.Bold;          //Setea el tipo de letra.
			StyleHPBar.normal.textColor = Color.white;      //Setea el color de la letra a blanco.
			StyleHPBar.fontSize = Screen.width / 40;        //Setea el tamaño de la letra(dividiendo el tamaño de la pantalla).
			StyleHPBar.border.Add(new Rect(1,1,1,1));       //setea el borde del Box.
		}
		//fin inicializacion.
	}
	void OnGUI(){
		if (gameObject.tag.Equals ("Player")) { //Si es el player, se dibuja la barra de vida del player.
			#if UNITY_EDITOR_WIN
			StyleHPBar.fontSize = Screen.width / 40; //para cuando cambia de tamaño la ventana.
			#endif

			//notocarzorrita.
			float Left = Screen.width / 99;
			float Top = Screen.width / 99;
			float width = Screen.width / 4;
			float height = Screen.width / 24;
			//notocarzorritaend.

			float a = gameObject.GetComponent<Stats> ().Current_HP; //La vida actual del player
			float b = gameObject.GetComponent<Stats> ().Max_HP;     //La vida maxima del player
			float porcentaje = (a*100)/b;                           //Porcentaje de vida actual

            //Lo siguiente es la barra de vida, el orden de dibujado depende de lo que este antes y este despues, cuidado.
			GUI.DrawTexture (new Rect (Left, Top, width*(porcentaje/100), height), HPBarTexture);//notocarzorrita.
			GUI.Box (new Rect (Left,Top,width,height), "");
			GUI.Box (new Rect (Left,Top,width,height), a+"/"+b,StyleHPBar);//notocarzorrita.
		}
	}
	// Update is called once per frame
	void FixedUpdate () {
        //Si no es el player, se dibuja la barra de vida del enemigo(sobre el mismo).
		if (!gameObject.tag.Equals ("Player")) {
			float a = gameObject.GetComponent<Stats> ().Current_HP;
			float b = gameObject.GetComponent<Stats> ().Max_HP;
			a = (a / b);
			bar.SetPosition (0, transform.position + new Vector3 (-1f, 1.5f, 0));           //Setea el punto de partida del LineRenderer.
			bar.SetPosition (1, transform.position + new Vector3 (a * 2 - 1f, 1.5f, 0));    //Setea el punto final del LineRenderer.
		}
	}
}
